工作中用到的记录一下,游标的详细定义及说明请百度 --游标格式化数据
DECLARE cursor_jxsmb CURSOR FOR --定义一个游标
SELECT F0 FROM dbo.JXSMB2019; --定于游标的数据源
OPEN cursor_jxsmb --打开游标
DECLARE @LAST NVARCHAR(4000),@THIS NVARCHAR(4000) --定义两个变量,用来保存上一行和当前行的数据
FETCH NEXT FROM cursor_jxsmb INTO @THIS --设置@this 为当前行的数据
WHILE @@FETCH_STATUS=0 --判断游标是否为读取失败,读取失败则为-1 代表最后一行
BEGIN
IF LEN(@THIS)0 --判断当前读取行字段是否为空
BEGIN
SET @LAST=@THIS --如果不为空则不更新,并且设置@last为当前行的数据
--PRINT @LAST
END
ELSE
BEGIN --如果为空则更新当前行的数据为上一行
UPDATE JXSMB2019 SET F0=@LAST WHERE CURRENT OF cursor_jxsmb --更新数据,where 只更新当前游标所在行
--PRINT @LAST
END
FETCH NEXT FROM cursor_jxsmb INTO @THIS --继续读取下一行数据
END
CLOSE cursor_jxsmb --关闭游标
DEALLOCATE cursor_jxsmb --释放游标
|